// axio二次封装，并设置拦截器
// 1.导入axios
import { config } from "antd-mobile/es/components/toast/methods";
import axios from "axios";

// 2.实例化axios对象
var service = axios.create({
    timeout:10*1000,
    baseURL:'',
    // baseURL:'process.env.REACT_APP_BASE_API',//基准路径
    // 在开发环境下，process.env.REACT_APP_BASE_API会自动获取.env.development文件中的环境变量的值；
    // 在生产环境下，process.env.REACT_APP_BASE_API会自动获取.env.production文件中的环境变量的值；
    // 在测试环境下，process.env.REACT_APP_BASE_API会自动获取.env.test文件中的环境变量的值；
})
// 3.1 设置请求拦截器
service.interceptors.request.use(
    (config)=>{
        // 设置请求头参数（携带请求头参数）
        config.headers['token'] = localStorage.getItem('token');//eslint-disable-line
        return config;
    },
    (error)=>{
        return Promise.reject(error);
    }
)
// 3.2设置响应拦截器
service.interceptors.response.use(
    (res)=>{
        return res;
    },
    (error)=>{
        if(error.response.status == 401){
            alert('登录过期，请重新登录');
            localStorage.removeItem('token');
            // router.push('')
            // 登录过期，自动删除过期token
        }else if(error.response.status == 404){
            alert('访问路径有误')
        }else if(error.response.status == 500){
            alert('服务器内部错误！')
        }else if(error.response.status == 503){
            alert('服务器不可用！')
        }
        return Promise.reject(error);
    }
)
// 导出service
export default service;